'''
    装饰器带参数
  带参数的装饰器是三层的
  	第一层： 负责接收装饰器的参数
  	第二层： 负责接收函数
  	第三层： 去接收函数里面的参数
'''

'''
    装饰器带参数
  带参数的装饰器是三层的
  	第一层： 负责接收装饰器的参数
  	第二层： 负责接收函数
  	第三层： 去接收函数里面的参数
'''
def outer(a):  # 第一层： 负责接收装饰器的参数
    def decorate(func):  # 第二层： 负责接收函数
        def wraper(*args, **kwargs):  # 第三层： 去买个接收函数的参数
            func(*args, **kwargs)
            print("--->铺地砖{}块".format(a))

        return wraper

    return decorate


@outer(100)  # 装饰器带有参数
def house(time):
    print("我{}日期拿到了毛坯房".format(time))


house("2020-9-9")